import NProgress from "nprogress"; // progress bar
import "nprogress/nprogress.css"; // progress bar style

export async function beforeEachHandler(to, from, next) {
  NProgress.start();

  // 哪些页面需要认证: /backend/xxxx 都需要登录后才能访问
  if (to.fullPath.indexOf("/backend") === 0) {
    // 正在访问backend的页面
    // 判断用户是否登录
    const access_token = localStorage.getItem("access_token");
    if (
      access_token === null ||
      access_token === "" ||
      access_token === "undefined"
    ) {
      // 未登录
      console.log("not login");
      // 这里的Next 就相当于rouer.push()
      next({
        path: "/login",
        // 携带上用户之前访问页面的所有参数: 页面的名称, 页面参数(&name=xxx&env=test)
        // 只能指的是路由的名称
        // Login页面需要配合, 实现重定向的跳转
        query: {
          redirect: to.name,
          ...to.query,
        },
      });
    } else {
      // 已登录, 直接放行
      next();
    }
  } else {
    // 访问的非后台页面, 直接放行
    next();
  }
}

export async function afterEachHandler() {
  NProgress.done();
}
